package com.marvels.financial.pay.cjpay.service;

import java.util.Map;

import com.marvels.common.dto.pay.McfeRepaymentTradeDetails;
import com.marvels.common.exception.MarvelsBusinessException;
import com.marvels.financial.pay.cjpay.dto.BindCardDTO;
import com.marvels.financial.pay.cjpay.dto.DirectPaymentDTO;
import com.marvels.financial.pay.cjpay.dto.DirectPaymentQueryDTO;
import com.marvels.financial.pay.cjpay.dto.PrebindCardDTO;

public interface CJPayApi {
	
	/**
	 * 畅捷预绑卡
	 * @param bindCardDTO
	 * @return
	 * @throws MarvelsBusinessException
	 */
	public  Map<String, Object> prebindCard(PrebindCardDTO bindCardDTO)  throws MarvelsBusinessException;
	
	
	/**
	 * 畅捷绑卡
	 * @param bindCardDTO
	 * @return
	 * @throws MarvelsBusinessException
	 */
	public  Map<String, Object> bindCard(BindCardDTO bindCardDTO)  throws MarvelsBusinessException;
	
	/**
	 * 畅捷协议支付类交易(代扣)
	 * @param baoFuDirectPaymentDTO
	 * @return
	 * @throws MarvelsBusinessException
	 */
	public  Map<String, Object> directPayment(DirectPaymentDTO directPaymentDTO)  throws MarvelsBusinessException ;
	
	
	/**
	 * 畅捷协议支付交易结果查询(代扣)
	 * @param map
	 * @return
	 */
	public  Map<String, Object> directPaymentQuery(DirectPaymentQueryDTO directPaymentQueryDTO)  throws MarvelsBusinessException;
	
	/**
	 * 畅捷代付
	 * @param map
	 * @return
	 */
	public  Map<String, Object> pay(McfeRepaymentTradeDetails tradeDetail);

	/**
	 * 畅捷代付结果查询
	 * @param map
	 * @return
	 */
	public  Map<String, Object> payResultQuery(McfeRepaymentTradeDetails tradeDetail);
}
